48c660
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2017 the original author or authors.
+ * Copyright 2002-2018 the original author or authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -79,10 +79,12 @@
public class Elvis extends SpelNodeImpl {
 	public void generateCode(MethodVisitor mv, CodeFlow cf) {
 		// exit type descriptor can be null if both components are literal expressions
 		computeExitTypeDescriptor();
+		cf.enterCompilationScope();
 		this.children[0].generateCode(mv, cf);
 		String lastDesc = cf.lastDescriptor();
 		Assert.state(lastDesc != null, "No last descriptor");
 		CodeFlow.insertBoxIfNecessary(mv, lastDesc.charAt(0));
+		cf.exitCompilationScope();
 		Label elseTarget = new Label();
 		Label endOfIf = new Label();
 		mv.visitInsn(DUP);
@@ -95,12 +97,14 @@
public class Elvis extends SpelNodeImpl {
 		mv.visitJumpInsn(IFEQ, endOfIf);  // if not empty, drop through to elseTarget
 		mv.visitLabel(elseTarget);
 		mv.visitInsn(POP);
+		cf.enterCompilationScope();
 		this.children[1].generateCode(mv, cf);
 		if (!CodeFlow.isPrimitive(this.exitTypeDescriptor)) {
 			lastDesc = cf.lastDescriptor();
 			Assert.state(lastDesc != null, "No last descriptor");
 			CodeFlow.insertBoxIfNecessary(mv, lastDesc.charAt(0));
 		}
+		cf.exitCompilationScope();
 		mv.visitLabel(endOfIf);
 		cf.pushDescriptor(this.exitTypeDescriptor);
 	}
